package com.centit.airplanebaseinfo.po;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;

import javax.persistence.Column;


import javax.persistence.Id;

import javax.persistence.Entity;
import javax.persistence.Table;

import org.apache.commons.lang3.StringUtils;
import org.hibernate.validator.constraints.Length;

import com.centit.framework.components.CodeRepositoryUtil;


/**
 * create by scaffold 2020-03-13 
 * @author codefan@sina.com
 
  飞机基础信息飞机基础信息   
*/
@Entity
@Table(name = "T_AIRPLANE_BASEINFO")
public class AirplaneBaseinfo implements java.io.Serializable {
	private static final long serialVersionUID =  1L;



	/**
	 * REC_ID【主键】 REC_ID【主键】 
	 */
	@Id
	@Column(name = "REC_ID")
	
	private String recId;

	/**
	 * GLJH【关联计划】  
	 */
	@Column(name = "GLJH")
	@Length(min = 0, max = 32, message = "字段长度不能小于{min}大于{max}")
	private String  gljh;
	/**
	 * CCXLH【出厂序列号】 
	 */
	@Column(name = "CCXLH")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  ccxlh;
	/**
	 * ZCH【注册号】 
	 */
	@Column(name = "ZCH")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  zch;
	/**
	 * FSN【东航机队号/FSN】 
	 */
	@Column(name = "FSN")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  fsn;
	/**
	 * AIR_ZT【飞机状态】 
	 */
	@Column(name = "AIR_ZT")
	@Length(min = 0, max = 10, message = "字段长度不能小于{min}大于{max}")
	private String  airZt;
	/**
	 * NATURE【飞机性质】
	 */
	@Column(name = "NATURE")
	@Length(min = 0, max = 10, message = "字段长度不能小于{min}大于{max}")
	private String  nature;
	/**
	 * PW【批文】 
	 */
	@Column(name = "PW")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  pw;
	/**
	 * START_TIME【租赁起始日期】 
	 */
	@Column(name = "START_TIME")
	private Date  startTime;
	/**
	 * END_TIME【租赁到期日期】 
	 */
	@Column(name = "END_TIME")
	private Date  endTime;
	/**
	 * SIGN【国籍标志和登记标志】  
	 */
	@Column(name = "SIGN")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  sign;
	/**
	 * AIR_MODEL【航空器型号】  
	 */
	@Column(name = "AIR_MODEL")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  airModel;
	/**
	 * AIR_ZZS【航空器制造厂商】  
	 */
	@Column(name = "AIR_ZZS")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  airZzs;
	/**
	 * OUT_SN【航空器出厂序号】  
	 */
	@Column(name = "OUT_SN")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  outSn;
	/**
	 * PROCTION_DATE【出厂日期】
	 */
	@Column(name = "PROCTION_DATE")
	private Date  proctionDate;
	/**
	 * USE_DATE【调机日期】 
	 */
	@Column(name = "USE_DATE")
	private Date  useDate;
	/**
	 * OFF_DATE【注销日期】 
	 */
	@Column(name = "OFF_DATE")
	private Date  offDate;
	/**
	 * ENGINE_S【Engine serie】  
	 */
	@Column(name = "ENGINE_S")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  engineS;
	/**
	 * ENGINE【ENGINE】  
	 */
	@Column(name = "ENGINE")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  engine;
	/**
	 * ONE_SN【出厂序号】  
	 */
	@Column(name = "ONE_SN")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  oneSn;
	/**
	 * TWO_SN【出厂序号】  
	 */
	@Column(name = "TWO_SN")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  twoSn;
	/**
	 * GJ_NO【国籍登记证编号】  
	 */
	@Column(name = "GJ_NO")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  gjNo;
	/**
	 * GJ_DATE【国籍登记证签发日期】  
	 */
	@Column(name = "GJ_DATE")
	private Date  gjDate;
	/**
	 * BZFJ【本证发给】  
	 */
	@Column(name = "BZFJ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  bzfj;
	
	/**
	 * BZFJ【合同金额】  
	 */
	@Column(name = "HT_MONEY")
	@Length(min = 0, max = 20, message = "字段长度不能小于{min}大于{max}")
	private String  htMoney;
	/**
	 * HAVE_NAME【所有人名称】  
	 */
	@Column(name = "HAVE_NAME")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  haveName;
	/**
	 * HAVE_ADDR【所有人地址】  
	 */
	@Column(name = "HAVE_ADDR")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  haveAddr;
	/**
	 * YY_NAME【运营人】  
	 */
	@Column(name = "YY_NAME")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  yyName;
	/**
	 * YY_ADDR【运营人地址】  
	 */
	@Column(name = "YY_ADDR")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  yyAddr;
	/**
	 * SH_NO【标准适航证编号】  
	 */
	@Column(name = "SH_NO")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  shNo;
	/**
	 * QF_DATE【标准适航证签发日期】  
	 */
	@Column(name = "QF_DATE")
	private Date  qfDate;
	/**
	 * HJ_NO【选择呼叫代码】  
	 */
	@Column(name = "HJ_NO")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  hjNo;
	/**
	 * ADDR_NO_HEX【航空器地址编码】  
	 */
	@Column(name = "ADDR_NO_HEX")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  addrNoHex;
	/**
	 * ADDR_NO_OCT【航空器地址编码】  
	 */
	@Column(name = "ADDR_NO_OCT")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  addrNoOct;
	/**
	 * DT_NO【电台执照序号】  
	 */
	@Column(name = "DT_NO")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  dtNo;
	/**
	 * DTYX_DATE【电台执照有效期限至】  
	 */
	@Column(name = "DTYX_DATE")
	private Date  dtyxDate;
	/**
	 * DTBF_DATE【电台执照颁发日期】  
	 */
	@Column(name = "DTBF_DATE")
	private Date  dtbfDate;
	/**
	 * DTZ【电台证】  
	 */
	@Column(name = "DTZ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  dtz;
	/**
	 * SHZ【适航证】  
	 */
	@Column(name = "SHZ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  shz;
	/**
	 * GJZ【国籍证】  
	 */
	@Column(name = "GJZ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  gjz;
	/**
	 * HT【合同电子档】  
	 */
	@Column(name = "HT")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  ht;
	/**
	 * HTSQXX【合同授权信息】  
	 */
	@Column(name = "HT2HTSQXX")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  ht2htsqxx;
	/**
	 * FJYZ【飞机原值】  
	 */
	@Column(name = "FJYZ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  fjyz;
	/**
	 * FJCZ【飞机残值】  
	 */
	@Column(name = "FJCZ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  fjcz;
	/**
	 * BXXX【保险信息】  
	 */
	@Column(name = "BXXX")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  bxxx;
	/**
	 * ZJBZ【租金币种】  
	 */
	@Column(name = "ZJBZ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  zjbz;
	/**
	 * MQZJ【每期租金】  
	 */
	@Column(name = "MQZJ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  mqzj;
	/**
	 * ZJZFQJ【租金支付期间】  
	 */
	@Column(name = "ZJZFQJ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  zjzfqj;
	/**
	 * HL【汇率】  
	 */
	@Column(name = "HL")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  hl;
	/**
	 * JRYGRQ【加入运归日期】  
	 */
	@Column(name = "JRYGRQ")
	private Date  jrygrq;
	/**
	 * TCYGRQ【退出运规日期】  
	 */
	@Column(name = "TCYGRQ")
	private Date  tcygrq;
	/**
	 * APU【APU型号】  
	 */
	@Column(name = "APU")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  apu;
	/**
	 * HUD【HUD】  
	 */
	@Column(name = "HUD")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  hud;
	/**
	 * WIFI【WIFI】  
	 */
	@Column(name = "WIFI")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  wifi;
	/**
	 * MAX_ZL【最大起飞重量】  
	 */
	@Column(name = "MAX_ZL")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  maxZl;
	/**
	 * ZYQDJ【占有权登记】  
	 */
	@Column(name = "ZYQDJ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  zyqdj;
	/**
	 * IDERA【IDERA登记】  
	 */
	@Column(name = "IDERA")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  idera;
	/**
	 * ZWBJ【座位布局】  
	 */
	@Column(name = "ZWBJ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  zwbj;
	
	/**
	 * DJSJ【登记时间】 
	 */
	@Column(name = "DJSJ")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  djsj;
	
	/**
	 * DJSJ【登记时间】 
	 */
	@Column(name = "FLOW_INS_ID")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  flowInsId;
	
	/**
	 * STATUS【状态】 0:未提交；1：已提交；2：流程完成；3：已注销
	 */
	@Column(name = "STATUS")
	@Length(min = 0, max = 200, message = "字段长度不能小于{min}大于{max}")
	private String  status;
	
	/**
	 * czType【处置方式】1退租，2出售
	 */
	@Column(name = "CZ_TYPE")
	@Length(min = 0, max = 1, message = "字段长度不能小于{min}大于{max}")
	private String  czType;
	/**
	 * DATA_VALID DATA_VALID 
	 */
	@Column(name = "DATA_VALID")
	@Length(min = 0, max = 1, message = "字段长度不能小于{min}大于{max}")
	private String  dataValid;
	/**
	 * INS_USERCODE INS_USERCODE 
	 */
	@Column(name = "INS_USERCODE")
	@Length(min = 0, max = 32, message = "字段长度不能小于{min}大于{max}")
	private String  insUsercode;
	/**
	 * INS_TIME INS_TIME 
	 */
	@Column(name = "INS_TIME")
	private Date  insTime;
	/**
	 * EDIT_USERCODE EDIT_USERCODE 
	 */
	@Column(name = "EDIT_USERCODE")
	@Length(min = 0, max = 32, message = "字段长度不能小于{min}大于{max}")
	private String  editUsercode;
	/**
	 * EDIT_TIME EDIT_TIME 
	 */
	@Column(name = "EDIT_TIME")
	private Date  editTime;
	/**
	 * DEL_USERCODE DEL_USERCODE 
	 */
	@Column(name = "DEL_USERCODE")
	@Length(min = 0, max = 32, message = "字段长度不能小于{min}大于{max}")
	private String  delUsercode;
	/**
	 * DEL_TIME DEL_TIME 
	 */
	@Column(name = "DEL_TIME")
	private Date  delTime;

	/**
	 * TITLE  标题
	 */
	@Column(name = "TITLE")
	@Length(min = 0, max = 2000, message = "字段长度不能小于{min}大于{max}")
	private String  title;
	
	/**
	 * REMARK 备注
	 */
	@Column(name = "REMARK")
	@Length(min = 0, max = 2000, message = "字段长度不能小于{min}大于{max}")
	private String  remark;


	/*---------2023.11.8新增字段---------*/
	@Column(name = "CZR")
	private String  czr;
	@Column(name = "QZRQ")
	private Date  qzrq;
	@Column(name = "ZQ")
	private String  zq;
	@Column(name = "IS_TQTZ")
	private String  isTqtz;
	@Column(name = "IS_WYYZDXZ")
	private String  isWyyzdxz;
	@Column(name = "YYFXXS")
	private String  yyfxxs;
	@Column(name = "SYFXXS")
	private String  syfxxs;
	@Column(name = "LYL")
	private String  lyl;
	@Column(name = "DXKSSJ_Q")
	private Date  dxkssjQ;
	@Column(name = "ZJYCDXRWMC")
	private String  zjycdxrwmc;
	@Column(name = "DXKSSL_Q1")
	private Date  dxksslQ1;
	@Column(name = "DXKSSJ_Q2")
	private Date  dxkssjQ2;
	@Column(name = "TZSFDJXLH1")
	private String  tzsfdjxlh1;
	@Column(name = "FDJZT1")
	private String  fdjzt1;
	@Column(name = "TZSFDJXLH2")
	private String  tzsfdjxlh2;
	@Column(name = "FDJZT2")
	private String  fdjzt2;
	@Column(name = "TZRQQBNNJHDX")
	private String  tzrqqbnnjhdx;
	@Column(name = "TZRQQBNNYQDX")
	private String  tzrqqbnnyqdx;
	@Column(name = "QTFJ")
	private String  qtfj;
    @Column(name = "JL")
    private String  jl;

	@Column(name = "JHXRWMC")
	private String  jhxrwmc;//计划修任务名称

	@Column(name = "DSG_DQR")
	private Date  dsgDqr;//dsg到期日

	@Column(name = "DTZZJKBJRQ")
	private Date  dtzzjkbjrq;//电台执照监控报警日期

     @Column(name = "JHDXXYCKSSJ_T")
	private Date  jhdxxyckssjT;//机身计划大修下一次开始时间T



    @Column(name = "LAST_SEND_DAYS_JH")
    private String  lastSendDaysJh;//

    @Column(name = "LAST_SEND_DAYS_YQ")
    private String  lastSendDaysYq;//

    @Column(name = "LAST_SEND_DAYS_DTZZ")
    private String  lastSendDaysDtzz;//

	@Column(name = "FDJFC")
	private String  fdjfc;

	@Column(name = "CLOSE_SMS_DTZZ")
	private String  closeSmsDtzz;//1.open;0:close

	@Column(name = "CLOSE_SMS_JHDX")
	private String  closeSmsJhdx;//1.open;0:close

	@Column(name = "CLOSE_SMS_YQDX")
	private String  closeSmsYqdx;//1.open;0:close

	public String getFdjfc() {
		return fdjfc;
	}

	public void setFdjfc(String fdjfc) {
		this.fdjfc = fdjfc;
	}

	public String getCloseSmsDtzz() {
		return closeSmsDtzz;
	}

	public void setCloseSmsDtzz(String closeSmsDtzz) {
		this.closeSmsDtzz = closeSmsDtzz;
	}

	public String getCloseSmsJhdx() {
		return closeSmsJhdx;
	}

	public void setCloseSmsJhdx(String closeSmsJhdx) {
		this.closeSmsJhdx = closeSmsJhdx;
	}

	public String getCloseSmsYqdx() {
		return closeSmsYqdx;
	}

	public void setCloseSmsYqdx(String closeSmsYqdx) {
		this.closeSmsYqdx = closeSmsYqdx;
	}

	public String getLastSendDaysJh() {
        return lastSendDaysJh;
    }

    public void setLastSendDaysJh(String lastSendDaysJh) {
        this.lastSendDaysJh = lastSendDaysJh;
    }

    public String getLastSendDaysYq() {
        return lastSendDaysYq;
    }

    public void setLastSendDaysYq(String lastSendDaysYq) {
        this.lastSendDaysYq = lastSendDaysYq;
    }

    public String getLastSendDaysDtzz() {
        return lastSendDaysDtzz;
    }

    public void setLastSendDaysDtzz(String lastSendDaysDtzz) {
        this.lastSendDaysDtzz = lastSendDaysDtzz;
    }

    // Constructors
	/** default constructor */
	public AirplaneBaseinfo() {
	}
	/** minimal constructor */
	public AirplaneBaseinfo(
		String recId		
		) {
		this.recId = recId;		
			
	}

	/*计算值*/
	public AirplaneBaseinfo calculatedValue(AirplaneBaseinfo baseinfo){
		SimpleDateFormat shortSdf=new SimpleDateFormat("yyyy-MM-dd");

		//计算机龄
		if(baseinfo.getProctionDate()!=null){
			Date todayDate=new Date();
			long times=todayDate.getTime()-baseinfo.getProctionDate().getTime();
			long year=times/1000/60/60/24/365;
			BigDecimal bigDecimal=new BigDecimal(year);
			bigDecimal=bigDecimal.setScale(2, RoundingMode.HALF_UP);
			//String jl=bigDecimal.toString();
			baseinfo.setJl(bigDecimal.toString());
		}
		//计算电台执照
		if(baseinfo.getDtbfDate()!=null){
			Calendar c = Calendar.getInstance();
			c.setTime(baseinfo.getDtbfDate());
			c.add(Calendar.YEAR,3);
			baseinfo.setDtyxDate(c.getTime());
			c.add(Calendar.DATE,-90);
			baseinfo.setDtzzjkbjrq(c.getTime());
		}
		//剩余飞行小时和dsg到期日
		if(StringUtils.isNotEmpty(baseinfo.getYyfxxs())){
			try {
				Integer yyfxxs=Integer.valueOf(baseinfo.getYyfxxs());
				baseinfo.setSyfxxs(String.valueOf(60000-yyfxxs));
				if(baseinfo.getLyl()!=null){
					Integer lyl=Integer.valueOf(baseinfo.getLyl());
					Date todayDate=new Date();
					Calendar c = Calendar.getInstance();
					c.setTime(todayDate);
					Integer days=(60000-yyfxxs)/lyl;
					c.add(Calendar.DATE,days);
					baseinfo.setDsgDqr(c.getTime());

				}
			}catch (Exception e){
				e.printStackTrace();
			}

		}
		//计算Q1,Q2
		if(baseinfo.getDxkssjQ()!=null&&StringUtils.isNotEmpty(baseinfo.getJhxrwmc())){
			try {
				Calendar c = Calendar.getInstance();
				c.setTime(baseinfo.getDxkssjQ());
				float x=Float.valueOf(baseinfo.getJhxrwmc());
				Integer xDay=(int)x*365;
				Integer XX=(int)x*2;
				c.add(Calendar.YEAR,XX);
				baseinfo.setDxkssjQ2(c.getTime());
				c.add(Calendar.DATE,-xDay);//
				baseinfo.setDxksslQ1(c.getTime());

			}catch (Exception e){
				e.printStackTrace();
			}

		}

		//退租大修
		if(baseinfo.getEndTime()!=null){
			try {
				if(baseinfo.getJhdxxyckssjT()!=null){
					long daysDiff=181l;
					LocalDate date2 = LocalDate.parse(shortSdf.format(baseinfo.getEndTime()));
					LocalDate date1 = LocalDate.parse(shortSdf.format(baseinfo.getJhdxxyckssjT()));

					daysDiff = ChronoUnit.DAYS.between(date2, date1);

					if(daysDiff<180l){
						baseinfo.setTzrqqbnnjhdx("预警");
					}else {
						baseinfo.setTzrqqbnnjhdx("不预警");
					}
				}
				if(baseinfo.getDxkssjQ2()!=null&&baseinfo.getDxksslQ1()!=null){
					long daysDiff=181l;
					long daysDiff2=181l;
					LocalDate date1 = LocalDate.parse(shortSdf.format(baseinfo.getEndTime()));
					LocalDate date2 = LocalDate.parse(shortSdf.format(baseinfo.getDxkssjQ2()));
					LocalDate date3 = LocalDate.parse(shortSdf.format(baseinfo.getDxksslQ1()));

					daysDiff = ChronoUnit.DAYS.between(date2, date1);
					daysDiff2 = ChronoUnit.DAYS.between(date3, date1);

					if(daysDiff<180l){
						baseinfo.setTzrqqbnnyqdx("预警");
					}else {
						baseinfo.setTzrqqbnnyqdx("不预警");
					}

					if(daysDiff2>180l&&!"预警".equals(baseinfo.getTzrqqbnnyqdx())){
						baseinfo.setTzrqqbnnyqdx("不预警");
					}else{
						baseinfo.setTzrqqbnnyqdx("预警");
					}
				}

			}catch (Exception e){
				e.printStackTrace();
			}

		}

		return baseinfo;
	}

	public AirplaneBaseinfo(String recId,String sign, String airModel, String ccxlh,
							Date proctionDate, Date useDate, String engine, String maxZl,
							String jl, String nature, String czr, Date startTime,
							Date endTime, String zq, String isTqtz, String isWyyzdxz,
							String zjbz, String mqzj, String gjNo, Date gjDate,
							String bzfj, String haveName, String haveAddr, String shNo,
							Date qfDate, String hjNo, String addrNoHex, String addrNoOct,
							String dtNo, Date dtbfDate, Date dtyxDate, Date dtzzjkbjrq,
							String bz, String yyfxxs, String lyl, Date dxkssjQ,
							String zjycdxrwmc, Date jhdxxyckssjT, String jhxrwmc, String tzsfdjxlh1,
							String fdjzt1, String tzsfdjxlh2, String fdjzt2) {
		SimpleDateFormat shortDate=new SimpleDateFormat("yyyy-MM-dd");
		this.recId = recId;
		this.sign=sign;
		this.airModel=airModel;
		this.ccxlh=ccxlh;
		this.proctionDate="1900-01-01".equals(shortDate.format(proctionDate))?null:proctionDate;
		this.useDate="1900-01-01".equals(shortDate.format(useDate))?null:useDate;
		this.engine=engine;
		this.maxZl=maxZl;
		this.jl=jl;
		this.nature=CodeRepositoryUtil.getCode("AIRXZ",nature);
		this.czr=czr;
		this.startTime="1900-01-01".equals(shortDate.format(startTime))?null:startTime;
		this.endTime="1900-01-01".equals(shortDate.format(endTime))?null:endTime;
		this.zq=zq;
		this.isTqtz="是".equals(isTqtz)?"1":"0";
		this.isWyyzdxz="是".equals(isWyyzdxz)?"1":"0";
		this.zjbz=zjbz;
		this.mqzj=mqzj;
		this.gjNo=gjNo;
		this.gjDate="1900-01-01".equals(shortDate.format(gjDate))?null:gjDate;
		this.bzfj=bzfj;
		this.haveName=haveName;
		this.haveAddr=haveAddr;
		this.shNo=shNo;
		this.qfDate="1900-01-01".equals(shortDate.format(qfDate))?null:qfDate;
		this.hjNo=hjNo;
		this.addrNoHex=addrNoHex;
		this.addrNoOct=addrNoOct;
		this.dtNo=dtNo;
		this.dtbfDate="1900-01-01".equals(shortDate.format(dtbfDate))?null:dtbfDate;
		this.dtyxDate="1900-01-01".equals(shortDate.format(dtyxDate))?null:dtyxDate;
		this.dtzzjkbjrq="1900-01-01".equals(shortDate.format(dtzzjkbjrq))?null:dtzzjkbjrq;
		this.remark=bz;
		this.yyfxxs=yyfxxs;
		this.lyl=lyl;
		this.dxkssjQ="1900-01-01".equals(shortDate.format(dxkssjQ))?null:dxkssjQ;
		this.zjycdxrwmc=zjycdxrwmc;
		this.jhdxxyckssjT="1900-01-01".equals(shortDate.format(jhdxxyckssjT))?null:jhdxxyckssjT;
		this.jhxrwmc=jhxrwmc;
		this.tzsfdjxlh1=tzsfdjxlh1;
		this.fdjzt1=fdjzt1;
		this.tzsfdjxlh2=tzsfdjxlh2;
		this.fdjzt2=fdjzt2;
	}

	/** full constructor */
	public AirplaneBaseinfo(
	 String recId		
	,String  gljh,String  czType,String  flowInstId,String  htMoney,String  djsj,String  status,String  ccxlh,String  zch,String  fsn,String  airZt,String  nature,String  pw,Date  startTime,Date  endTime,String  sign,String  airModel,String  airZzs,String  outSn,Date  proctionDate,Date  useDate,Date  offDate,String  engineS,String  engine,String  oneSn,String  twoSn,String  gjNo,Date  gjDate,String  bzfj,String  haveName,String  haveAddr,String  yyName,String  yyAddr,String  shNo,Date  qfDate,String  hjNo,String  addrNoHex,String  addrNoOct,String  dtNo,Date  dtyxDate,Date  dtbfDate,String  dtz,String  shz,String  gjz,String  ht,String  ht2htsqxx,String  fjyz,String  fjcz,String  bxxx,String  zjbz,String  mqzj,String  zjzfqj,String  hl,Date  jrygrq,Date  tcygrq,String  apu,String  hud,String  wifi,String  maxZl,String  zyqdj,String  idera,String  zwbj,String  dataValid,String  insUsercode,Date  insTime,String  editUsercode,Date  editTime,String  delUsercode,Date  delTime,String title,String remark) {
	
	
		this.recId = recId;		
	
		this.gljh= gljh;
		this.djsj= djsj;
		this.czType= czType;
		this.status= status;
		this.flowInsId= flowInsId;
		this.ccxlh= ccxlh;
		this.zch= zch;
		this.fsn= fsn;
		this.airZt= airZt;
		this.nature= nature;
		this.pw= pw;
		this.startTime= startTime;
		this.endTime= endTime;
		this.sign= sign;
		this.airModel= airModel;
		this.airZzs= airZzs;
		this.outSn= outSn;
		this.proctionDate= proctionDate;
		this.useDate= useDate;
		this.offDate= offDate;
		this.engineS= engineS;
		this.engine= engine;
		this.oneSn= oneSn;
		this.twoSn= twoSn;
		this.gjNo= gjNo;
		this.gjDate= gjDate;
		this.bzfj= bzfj;
		this.haveName= haveName;
		this.haveAddr= haveAddr;
		this.yyName= yyName;
		this.yyAddr= yyAddr;
		this.shNo= shNo;
		this.qfDate= qfDate;
		this.hjNo= hjNo;
		this.addrNoHex= addrNoHex;
		this.addrNoOct= addrNoOct;
		this.dtNo= dtNo;
		this.dtyxDate= dtyxDate;
		this.dtbfDate= dtbfDate;
		this.dtz= dtz;
		this.shz= shz;
		this.gjz= gjz;
		this.ht= ht;
		this.ht2htsqxx= ht2htsqxx;
		this.fjyz= fjyz;
		this.fjcz= fjcz;
		this.bxxx= bxxx;
		this.zjbz= zjbz;
		this.mqzj= mqzj;
		this.zjzfqj= zjzfqj;
		this.hl= hl;
		this.jrygrq= jrygrq;
		this.tcygrq= tcygrq;
		this.apu= apu;
		this.htMoney= htMoney;
		this.hud= hud;
		this.wifi= wifi;
		this.maxZl= maxZl;
		this.zyqdj= zyqdj;
		this.idera= idera;
		this.zwbj= zwbj;
		this.dataValid= dataValid;
		this.insUsercode= insUsercode;
		this.insTime= insTime;
		this.editUsercode= editUsercode;
		this.editTime= editTime;
		this.delUsercode= delUsercode;
		this.delTime= delTime;		
		this.title=title;
		this.remark=remark;
				
	}


    public Date getDtzzjkbjrq() {
        return dtzzjkbjrq;
    }

    public void setDtzzjkbjrq(Date dtzzjkbjrq) {
        this.dtzzjkbjrq = dtzzjkbjrq;
    }

    public Date getDsgDqr() {
		return dsgDqr;
	}

	public void setDsgDqr(Date dsgDqr) {
		this.dsgDqr = dsgDqr;
	}

	public Date getJhdxxyckssjT() {
		return jhdxxyckssjT;
	}

	public void setJhdxxyckssjT(Date jhdxxyckssjT) {
		this.jhdxxyckssjT = jhdxxyckssjT;
	}

	public String getRecId() {
		return this.recId;
	}

	public void setRecId(String recId) {
		this.recId = recId;
	}
	// Property accessors
  
	public String getGljh() {
		return this.gljh;
	}
	
	public String getFlowInsId() {
		return flowInsId;
	}
	public void setFlowInsId(String flowInsId) {
		this.flowInsId = flowInsId;
	}
	public void setGljh(String gljh) {
		this.gljh = gljh;
	}
  
	public String getCzType() {
		return this.czType;
	}
	
	public void setCzType(String czType) {
		this.czType = czType;
	}
	public String getCcxlh() {
		return this.ccxlh;
	}
	
	public void setCcxlh(String ccxlh) {
		this.ccxlh = ccxlh;
	}
	public void setDjsj(String djsj) {
		this.djsj = djsj;
	}
	public void setStatus(String status) {
		this.status = status;
	}

	public String getJhxrwmc() {
		return jhxrwmc;
	}

	public void setJhxrwmc(String jhxrwmc) {
		this.jhxrwmc = jhxrwmc;
	}

	public String getZch() {
		return this.zch;
	}
	
	public void setZch(String zch) {
		this.zch = zch;
	}
  
	public String getFsn() {
		return this.fsn;
	}
	
	public void setFsn(String fsn) {
		this.fsn = fsn;
	}
  
	public String getAirZt() {
		return this.airZt;
	}
	
	public void setAirZt(String airZt) {
		this.airZt = airZt;
	}
  
	public String getNature() {
		return this.nature;
	}
	
	public void setNature(String nature) {
		this.nature = nature;
	}
  
	public String getPw() {
		return this.pw;
	}
	
	public void setPw(String pw) {
		this.pw = pw;
	}
  
	public Date getStartTime() {
		return this.startTime;
	}
	
	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}
  
	public Date getEndTime() {
		return this.endTime;
	}
	
	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}
  
	public String getSign() {
		return this.sign;
	}
	
	public void setSign(String sign) {
		this.sign = sign;
	}
  
	public String getAirModel() {
		return this.airModel;
	}
	
	public void setAirModel(String airModel) {
		this.airModel = airModel;
	}
  
	public String getAirZzs() {
		return this.airZzs;
	}
	
	public void setAirZzs(String airZzs) {
		this.airZzs = airZzs;
	}
  
	public String getOutSn() {
		return this.outSn;
	}
	
	public String getDjsj() {
		return this.djsj;
	}
	public String getStatus() {
		return this.status;
	}
	
	public void setOutSn(String outSn) {
		this.outSn = outSn;
	}
  
	public Date getProctionDate() {
		return this.proctionDate;
	}
	
	public void setProctionDate(Date proctionDate) {
		this.proctionDate = proctionDate;
	}
  
	public Date getUseDate() {
		return this.useDate;
	}
	
	public void setUseDate(Date useDate) {
		this.useDate = useDate;
	}
  
	public Date getOffDate() {
		return this.offDate;
	}
	
	public void setOffDate(Date offDate) {
		this.offDate = offDate;
	}
  
	public String getEngineS() {
		return this.engineS;
	}
	
	public void setEngineS(String engineS) {
		this.engineS = engineS;
	}
  
	public String getEngine() {
		return this.engine;
	}
	
	public void setEngine(String engine) {
		this.engine = engine;
	}
  
	public String getOneSn() {
		return this.oneSn;
	}
	
	public void setOneSn(String oneSn) {
		this.oneSn = oneSn;
	}
  
	public String getTwoSn() {
		return this.twoSn;
	}
	
	public void setTwoSn(String twoSn) {
		this.twoSn = twoSn;
	}
  
	public String getGjNo() {
		return this.gjNo;
	}
	
	public void setGjNo(String gjNo) {
		this.gjNo = gjNo;
	}
  
	public Date getGjDate() {
		return this.gjDate;
	}
	
	public void setGjDate(Date gjDate) {
		this.gjDate = gjDate;
	}
  
	public String getBzfj() {
		return this.bzfj;
	}
	
	public void setBzfj(String bzfj) {
		this.bzfj = bzfj;
	}
  
	public String getHaveName() {
		return this.haveName;
	}
	
	public void setHaveName(String haveName) {
		this.haveName = haveName;
	}
  
	public String getHaveAddr() {
		return this.haveAddr;
	}
	
	public void setHaveAddr(String haveAddr) {
		this.haveAddr = haveAddr;
	}
  
	public String getYyName() {
		return this.yyName;
	}
	
	public void setYyName(String yyName) {
		this.yyName = yyName;
	}
  
	public String getYyAddr() {
		return this.yyAddr;
	}
	
	public void setYyAddr(String yyAddr) {
		this.yyAddr = yyAddr;
	}
  
	public String getShNo() {
		return this.shNo;
	}
	
	public void setShNo(String shNo) {
		this.shNo = shNo;
	}
  
	public Date getQfDate() {
		return this.qfDate;
	}
	
	public void setQfDate(Date qfDate) {
		this.qfDate = qfDate;
	}
  
	public String getHjNo() {
		return this.hjNo;
	}
	
	public void setHjNo(String hjNo) {
		this.hjNo = hjNo;
	}
  
	public String getAddrNoHex() {
		return this.addrNoHex;
	}
	
	public void setAddrNoHex(String addrNoHex) {
		this.addrNoHex = addrNoHex;
	}
  
	public String getAddrNoOct() {
		return this.addrNoOct;
	}
	
	public void setAddrNoOct(String addrNoOct) {
		this.addrNoOct = addrNoOct;
	}
  
	public String getDtNo() {
		return this.dtNo;
	}
	
	public void setDtNo(String dtNo) {
		this.dtNo = dtNo;
	}
  
	public Date getDtyxDate() {
		return this.dtyxDate;
	}
	
	public void setDtyxDate(Date dtyxDate) {
		this.dtyxDate = dtyxDate;
	}
  
	public Date getDtbfDate() {
		return this.dtbfDate;
	}
	
	public void setDtbfDate(Date dtbfDate) {
		this.dtbfDate = dtbfDate;
	}
  
	public String getDtz() {
		return this.dtz;
	}
	
	public void setDtz(String dtz) {
		this.dtz = dtz;
	}
  
	public String getShz() {
		return this.shz;
	}
	
	public void setShz(String shz) {
		this.shz = shz;
	}
  
	public String getHtMoney() {
		return htMoney;
	}
	public void setHtMoney(String htMoney) {
		this.htMoney = htMoney;
	}
	public String getGjz() {
		return this.gjz;
	}
	
	public void setGjz(String gjz) {
		this.gjz = gjz;
	}
  
	public String getHt() {
		return this.ht;
	}
	
	public void setHt(String ht) {
		this.ht = ht;
	}
  
	public String getHt2htsqxx() {
		return this.ht2htsqxx;
	}
	
	public void setHt2htsqxx(String ht2htsqxx) {
		this.ht2htsqxx = ht2htsqxx;
	}
  
	public String getFjyz() {
		return this.fjyz;
	}
	
	public void setFjyz(String fjyz) {
		this.fjyz = fjyz;
	}
  
	public String getFjcz() {
		return this.fjcz;
	}
	
	public void setFjcz(String fjcz) {
		this.fjcz = fjcz;
	}
  
	public String getBxxx() {
		return this.bxxx;
	}
	
	public void setBxxx(String bxxx) {
		this.bxxx = bxxx;
	}
  
	public String getZjbz() {
		return this.zjbz;
	}
	
	public void setZjbz(String zjbz) {
		this.zjbz = zjbz;
	}
  
	public String getMqzj() {
		return this.mqzj;
	}
	
	public void setMqzj(String mqzj) {
		this.mqzj = mqzj;
	}
  
	public String getZjzfqj() {
		return this.zjzfqj;
	}
	
	public void setZjzfqj(String zjzfqj) {
		this.zjzfqj = zjzfqj;
	}
  
	public String getHl() {
		return this.hl;
	}
	
	public void setHl(String hl) {
		this.hl = hl;
	}
  
	public Date getJrygrq() {
		return this.jrygrq;
	}
	
	public void setJrygrq(Date jrygrq) {
		this.jrygrq = jrygrq;
	}
  
	public Date getTcygrq() {
		return this.tcygrq;
	}
	
	public void setTcygrq(Date tcygrq) {
		this.tcygrq = tcygrq;
	}
  
	public String getApu() {
		return this.apu;
	}
	
	public void setApu(String apu) {
		this.apu = apu;
	}
  
	public String getHud() {
		return this.hud;
	}
	
	public void setHud(String hud) {
		this.hud = hud;
	}
  
	public String getWifi() {
		return this.wifi;
	}
	
	public void setWifi(String wifi) {
		this.wifi = wifi;
	}
  
	public String getMaxZl() {
		return this.maxZl;
	}
	
	public void setMaxZl(String maxZl) {
		this.maxZl = maxZl;
	}
  
	public String getZyqdj() {
		return this.zyqdj;
	}
	
	public void setZyqdj(String zyqdj) {
		this.zyqdj = zyqdj;
	}
  
	public String getIdera() {
		return this.idera;
	}
	
	public void setIdera(String idera) {
		this.idera = idera;
	}
  
	public String getZwbj() {
		return this.zwbj;
	}
	
	public void setZwbj(String zwbj) {
		this.zwbj = zwbj;
	}
  
	public String getDataValid() {
		return this.dataValid;
	}
	
	public void setDataValid(String dataValid) {
		this.dataValid = dataValid;
	}
  
	public String getInsUsercode() {
		return this.insUsercode;
	}
	
	public void setInsUsercode(String insUsercode) {
		this.insUsercode = insUsercode;
	}
  
	public Date getInsTime() {
		return this.insTime;
	}
	
	public void setInsTime(Date insTime) {
		this.insTime = insTime;
	}
  
	public String getEditUsercode() {
		return this.editUsercode;
	}
	
	public void setEditUsercode(String editUsercode) {
		this.editUsercode = editUsercode;
	}
  
	public Date getEditTime() {
		return this.editTime;
	}
	
	public void setEditTime(Date editTime) {
		this.editTime = editTime;
	}
  
	public String getDelUsercode() {
		return this.delUsercode;
	}
	
	public void setDelUsercode(String delUsercode) {
		this.delUsercode = delUsercode;
	}
  
	public Date getDelTime() {
		return this.delTime;
	}
	
	public void setDelTime(Date delTime) {
		this.delTime = delTime;
	}
	
	


	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getCzr() {
		return czr;
	}

	public void setCzr(String czr) {
		this.czr = czr;
	}

	public Date getQzrq() {
		return qzrq;
	}

	public void setQzrq(Date qzrq) {
		this.qzrq = qzrq;
	}

	public String getZq() {
		return zq;
	}

	public void setZq(String zq) {
		this.zq = zq;
	}

	public String getIsTqtz() {
		return isTqtz;
	}

	public void setIsTqtz(String isTqtz) {
		this.isTqtz = isTqtz;
	}

	public String getIsWyyzdxz() {
		return isWyyzdxz;
	}

	public void setIsWyyzdxz(String isWyyzdxz) {
		this.isWyyzdxz = isWyyzdxz;
	}

	public String getYyfxxs() {
		return yyfxxs;
	}

	public void setYyfxxs(String yyfxxs) {
		this.yyfxxs = yyfxxs;
	}

	public String getSyfxxs() {
		return syfxxs;
	}

	public void setSyfxxs(String syfxxs) {
		this.syfxxs = syfxxs;
	}

	public String getLyl() {
		return lyl;
	}

	public void setLyl(String lyl) {
		this.lyl = lyl;
	}

	public Date getDxkssjQ() {
		return dxkssjQ;
	}

	public void setDxkssjQ(Date dxkssjQ) {
		this.dxkssjQ = dxkssjQ;
	}

	public String getZjycdxrwmc() {
		return zjycdxrwmc;
	}

	public void setZjycdxrwmc(String zjycdxrwmc) {
		this.zjycdxrwmc = zjycdxrwmc;
	}

	public Date getDxksslQ1() {
		return dxksslQ1;
	}

	public void setDxksslQ1(Date dxksslQ1) {
		this.dxksslQ1 = dxksslQ1;
	}

	public Date getDxkssjQ2() {
		return dxkssjQ2;
	}

	public void setDxkssjQ2(Date dxkssjQ2) {
		this.dxkssjQ2 = dxkssjQ2;
	}

	public String getTzsfdjxlh1() {
		return tzsfdjxlh1;
	}

	public void setTzsfdjxlh1(String tzsfdjxlh1) {
		this.tzsfdjxlh1 = tzsfdjxlh1;
	}

	public String getFdjzt1() {
		return fdjzt1;
	}

	public void setFdjzt1(String fdjzt1) {
		this.fdjzt1 = fdjzt1;
	}

	public String getTzsfdjxlh2() {
		return tzsfdjxlh2;
	}

	public void setTzsfdjxlh2(String tzsfdjxlh2) {
		this.tzsfdjxlh2 = tzsfdjxlh2;
	}

	public String getFdjzt2() {
		return fdjzt2;
	}

	public void setFdjzt2(String fdjzt2) {
		this.fdjzt2 = fdjzt2;
	}

	public String getTzrqqbnnjhdx() {
		return tzrqqbnnjhdx;
	}

	public void setTzrqqbnnjhdx(String tzrqqbnnjhdx) {
		this.tzrqqbnnjhdx = tzrqqbnnjhdx;
	}

	public String getTzrqqbnnyqdx() {
		return tzrqqbnnyqdx;
	}

	public void setTzrqqbnnyqdx(String tzrqqbnnyqdx) {
		this.tzrqqbnnyqdx = tzrqqbnnyqdx;
	}

	public String getQtfj() {
		return qtfj;
	}

	public void setQtfj(String qtfj) {
		this.qtfj = qtfj;
	}

    public String getJl() {
        return jl;
    }

    public void setJl(String jl) {
        this.jl = jl;
    }



    public AirplaneBaseinfo copy(AirplaneBaseinfo other){
  
		this.setRecId(other.getRecId());
  
		this.gljh= other.getGljh(); 
		this.djsj= other.getDjsj(); 
		this.status= other.getStatus(); 
		this.czType= other.getCzType(); 
		this.ccxlh= other.getCcxlh();  
		this.zch= other.getZch();  
		this.fsn= other.getFsn();  
		this.airZt= other.getAirZt();  
		this.nature= other.getNature();  
		this.pw= other.getPw();  
		this.startTime= other.getStartTime();  
		this.endTime= other.getEndTime();  
		this.sign= other.getSign();  
		this.airModel= other.getAirModel();  
		this.airZzs= other.getAirZzs();  
		this.outSn= other.getOutSn();  
		this.proctionDate= other.getProctionDate();  
		this.useDate= other.getUseDate();  
		this.offDate= other.getOffDate();  
		this.engineS= other.getEngineS();  
		this.engine= other.getEngine();  
		this.oneSn= other.getOneSn();  
		this.twoSn= other.getTwoSn();  
		this.gjNo= other.getGjNo();  
		this.gjDate= other.getGjDate();  
		this.bzfj= other.getBzfj();  
		this.haveName= other.getHaveName();  
		this.haveAddr= other.getHaveAddr();  
		this.yyName= other.getYyName();  
		this.yyAddr= other.getYyAddr();  
		this.shNo= other.getShNo();  
		this.qfDate= other.getQfDate();  
		this.hjNo= other.getHjNo();  
		this.addrNoHex= other.getAddrNoHex();  
		this.addrNoOct= other.getAddrNoOct();  
		this.dtNo= other.getDtNo();  
		this.dtyxDate= other.getDtyxDate();  
		this.dtbfDate= other.getDtbfDate();  
		this.dtz= other.getDtz();  
		this.shz= other.getShz();  
		this.gjz= other.getGjz();  
		this.ht= other.getHt();  
		this.ht2htsqxx= other.getHt2htsqxx();  
		this.fjyz= other.getFjyz();  
		this.fjcz= other.getFjcz();  
		this.bxxx= other.getBxxx();  
		this.zjbz= other.getZjbz();  
		this.mqzj= other.getMqzj();  
		this.zjzfqj= other.getZjzfqj();  
		this.hl= other.getHl();  
		this.jrygrq= other.getJrygrq();  
		this.tcygrq= other.getTcygrq();  
		this.apu= other.getApu();  
		this.hud= other.getHud();  
		this.wifi= other.getWifi();  
		this.maxZl= other.getMaxZl();  
		this.zyqdj= other.getZyqdj();  
		this.idera= other.getIdera();  
		this.zwbj= other.getZwbj();  
		this.dataValid= other.getDataValid();  
		this.insUsercode= other.getInsUsercode();  
		this.insTime= other.getInsTime();  
		this.editUsercode= other.getEditUsercode();  
		this.editTime= other.getEditTime();  
		this.delUsercode= other.getDelUsercode();  
		this.delTime= other.getDelTime();
		this.title=other.getTitle();
		this.remark=other.getRemark();
		return this;
	}
	
	public String checkField(AirplaneBaseinfo obj){
		String result="0";
		if(StringUtils.isBlank(obj.getAirModel())){
			result="航空器型号和制造人未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getSign())){
			result="国籍标志和登记标志未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getAirZzs())){
			result="航空器制造厂商未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getCcxlh())){
			result="航空器出厂序号未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getEngine())){
			result="ENGINE未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getEngineS())){
			result="Engine serie未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getGjNo())){
			result="国籍登记证编号未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getHaveName())){
			result="所有人名称未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getShNo())){
			result="标准适航证编号未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getHjNo())){
			result="选择呼叫代码未填写,不能完成引进";
		}/*else if(StringUtils.isBlank(obj.getAddrNoHex())){
			result="航空器地址编码（S模式）HEX未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getAddrNoOct())){
			result="航空器地址编码（S模式）OCT未填写,不能完成引进";
		}*/else if(StringUtils.isBlank(obj.getDtNo())){
			result="电台执照序号未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getZjbz())){
			result="租金币种未填写,不能完成引进";
		}else if(StringUtils.isBlank(obj.getMaxZl())){
			result="最大起飞重量未填写,不能完成引进";
		}
		return result;
	}
	
	public AirplaneBaseinfo copyNotNullProperty(AirplaneBaseinfo other){
  
	if( StringUtils.isNotBlank(other.getRecId())){
	this.setRecId(other.getRecId());}
  
		if( StringUtils.isNotBlank(other.getGljh())){
		this.gljh= other.getGljh();}  
		if( StringUtils.isNotBlank(other.getCcxlh())){
		this.ccxlh= other.getCcxlh();}
		if( StringUtils.isNotBlank(other.getCzType())){
			this.czType= other.getCzType();}  
		if( StringUtils.isNotBlank(other.getHtMoney())){
			this.htMoney= other.getHtMoney();}  
		if( StringUtils.isNotBlank(other.getZch())){
		this.zch= other.getZch();}  
		if( StringUtils.isNotBlank(other.getFsn())){
		this.fsn= other.getFsn();}  
		if( StringUtils.isNotBlank(other.getAirZt())){
		this.airZt= other.getAirZt();}  
		if( StringUtils.isNotBlank(other.getNature())){
		this.nature= other.getNature();}  
		if( StringUtils.isNotBlank(other.getPw())){
		this.pw= other.getPw();}  
		if( other.getStartTime()!=null){
		this.startTime= other.getStartTime();}  
		if( other.getEndTime()!=null){
		this.endTime= other.getEndTime();}  
		if( StringUtils.isNotBlank(other.getSign())){
		this.sign= other.getSign();}  
		if( StringUtils.isNotBlank(other.getFlowInsId())){
			this.flowInsId= other.getFlowInsId();}  
		if( StringUtils.isNotBlank(other.getAirModel())){
		this.airModel= other.getAirModel();}  
		if( StringUtils.isNotBlank(other.getAirZzs())){
		this.airZzs= other.getAirZzs();}  
		if( StringUtils.isNotBlank(other.getOutSn())){
		this.outSn= other.getOutSn();}  
		if( other.getProctionDate()!=null){
		this.proctionDate= other.getProctionDate();}  
		if( other.getUseDate()!=null){
		this.useDate= other.getUseDate();}  
		if( other.getOffDate()!=null){
		this.offDate= other.getOffDate();}  
		if( StringUtils.isNotBlank(other.getEngineS())){
		this.engineS= other.getEngineS();}  
		if( StringUtils.isNotBlank(other.getEngine())){
		this.engine= other.getEngine();}  
		if( StringUtils.isNotBlank(other.getOneSn())){
		this.oneSn= other.getOneSn();}  
		if( StringUtils.isNotBlank(other.getTwoSn())){
		this.twoSn= other.getTwoSn();}  
		if( StringUtils.isNotBlank(other.getGjNo())){
		this.gjNo= other.getGjNo();}  
		if( other.getGjDate()!=null){
		this.gjDate= other.getGjDate();}  
		if( StringUtils.isNotBlank(other.getBzfj())){
		this.bzfj= other.getBzfj();}  
		if( StringUtils.isNotBlank(other.getHaveName())){
		this.haveName= other.getHaveName();}  
		if( StringUtils.isNotBlank(other.getHaveAddr())){
		this.haveAddr= other.getHaveAddr();}  
		if( StringUtils.isNotBlank(other.getYyName())){
		this.yyName= other.getYyName();}  
		if( StringUtils.isNotBlank(other.getYyAddr())){
		this.yyAddr= other.getYyAddr();}  
		if( StringUtils.isNotBlank(other.getShNo())){
		this.shNo= other.getShNo();}  
		if( other.getQfDate()!=null){
		this.qfDate= other.getQfDate();}  
		if( StringUtils.isNotBlank(other.getHjNo())){
		this.hjNo= other.getHjNo();}  
		if( StringUtils.isNotBlank(other.getAddrNoHex())){
		this.addrNoHex= other.getAddrNoHex();}  
		if( StringUtils.isNotBlank(other.getAddrNoOct())){
		this.addrNoOct= other.getAddrNoOct();}  
		if( StringUtils.isNotBlank(other.getDtNo())){
		this.dtNo= other.getDtNo();}  
		if( other.getDtyxDate()!=null){
		this.dtyxDate= other.getDtyxDate();}  
		if( other.getDtbfDate()!=null){
		this.dtbfDate= other.getDtbfDate();}  
		if( StringUtils.isNotBlank(other.getDtz())){
		this.dtz= other.getDtz();}  
		if( StringUtils.isNotBlank(other.getShz())){
		this.shz= other.getShz();}  
		if( StringUtils.isNotBlank(other.getGjz())){
		this.gjz= other.getGjz();}  
		if( StringUtils.isNotBlank(other.getHt())){
		this.ht= other.getHt();}  
		if( StringUtils.isNotBlank(other.getHt2htsqxx())){
		this.ht2htsqxx= other.getHt2htsqxx();}  
		if( StringUtils.isNotBlank(other.getFjyz())){
		this.fjyz= other.getFjyz();}  
		if( StringUtils.isNotBlank(other.getFjcz())){
		this.fjcz= other.getFjcz();}  
		if( StringUtils.isNotBlank(other.getBxxx())){
		this.bxxx= other.getBxxx();}  
		if( StringUtils.isNotBlank(other.getZjbz())){
		this.zjbz= other.getZjbz();}  
		if( StringUtils.isNotBlank(other.getMqzj())){
		this.mqzj= other.getMqzj();}  
		if( StringUtils.isNotBlank(other.getZjzfqj())){
		this.zjzfqj= other.getZjzfqj();}  
		if( StringUtils.isNotBlank(other.getHl())){
		this.hl= other.getHl();}  
		if( other.getJrygrq()!=null){
		this.jrygrq= other.getJrygrq();}  
		if( other.getTcygrq()!=null){
		this.tcygrq= other.getTcygrq();}  
		if( StringUtils.isNotBlank(other.getApu())){
		this.apu= other.getApu();}  
		if( StringUtils.isNotBlank(other.getHud())){
		this.hud= other.getHud();}  
		if( StringUtils.isNotBlank(other.getWifi())){
		this.wifi= other.getWifi();} 
		if( StringUtils.isNotBlank(other.getDjsj())){
		this.djsj= other.getDjsj();} 
		if( StringUtils.isNotBlank(other.getStatus())){
			this.status= other.getStatus();} 
		if( StringUtils.isNotBlank(other.getMaxZl())){
		this.maxZl= other.getMaxZl();}  
		if( StringUtils.isNotBlank(other.getZyqdj())){
		this.zyqdj= other.getZyqdj();}  
		if(StringUtils.isNotBlank( other.getIdera())){
		this.idera= other.getIdera();}  
		if( StringUtils.isNotBlank(other.getZwbj())){
		this.zwbj= other.getZwbj();}  
		if( other.getDataValid() != null){
		this.dataValid= other.getDataValid();}  
		if( other.getInsUsercode() != null){
		this.insUsercode= other.getInsUsercode();}  
		if( other.getInsTime() != null){
		this.insTime= other.getInsTime();}  
		if( other.getEditUsercode() != null){
		this.editUsercode= other.getEditUsercode();}  
		if( other.getEditTime() != null){
		this.editTime= other.getEditTime();}  
		if( other.getDelUsercode() != null){
		this.delUsercode= other.getDelUsercode();}  
		if( other.getDelTime() != null){
		this.delTime= other.getDelTime();}		
		if( other.getTitle() != null){
			this.title= other.getTitle();}		
		if( other.getRemark() != null){
			this.remark= other.getRemark();}

		/*-------------*/
		if( StringUtils.isNotBlank(other.getCzr())){
			this.czr= other.getCzr();}
		if( StringUtils.isNotBlank(other.getZq())){
			this.zq= other.getZq();}
		if( StringUtils.isNotBlank(other.getIsTqtz())){
			this.isTqtz= other.getIsTqtz();}
		if( StringUtils.isNotBlank(other.getIsWyyzdxz())){
			this.isWyyzdxz= other.getIsWyyzdxz();}
		if( StringUtils.isNotBlank(other.getYyfxxs())){
			this.yyfxxs= other.getYyfxxs();}
		if( StringUtils.isNotBlank(other.getSyfxxs())){
			this.syfxxs= other.getSyfxxs();}
		if( StringUtils.isNotBlank(other.getLyl())){
			this.lyl= other.getLyl();}
		if( StringUtils.isNotBlank(other.getZjycdxrwmc())){
			this.zjycdxrwmc= other.getZjycdxrwmc();}
		if( StringUtils.isNotBlank(other.getTzsfdjxlh1())){
			this.tzsfdjxlh1= other.getTzsfdjxlh1();}
		if( StringUtils.isNotBlank(other.getFdjzt1())){
			this.fdjzt1= other.getFdjzt1();}
		if( StringUtils.isNotBlank(other.getTzsfdjxlh2())){
			this.tzsfdjxlh2= other.getTzsfdjxlh2();}
		if( StringUtils.isNotBlank(other.getFdjzt2())){
			this.fdjzt2= other.getFdjzt2();}
		if( StringUtils.isNotBlank(other.getTzrqqbnnjhdx())){
			this.tzrqqbnnjhdx= other.getTzrqqbnnjhdx();}
		if( StringUtils.isNotBlank(other.getTzrqqbnnyqdx())){
			this.tzrqqbnnyqdx= other.getTzrqqbnnyqdx();}
		if( StringUtils.isNotBlank(other.getQtfj())){
			this.qtfj= other.getQtfj();}
		if( StringUtils.isNotBlank(other.getJl())){
			this.jl= other.getJl();}
		if( StringUtils.isNotBlank(other.getJhxrwmc())){
			this.jhxrwmc= other.getJhxrwmc();}
		/*-----------*/
		if( other.getDsgDqr() != null){
			this.dsgDqr= other.getDsgDqr();}
		if( other.getJhdxxyckssjT() != null){
			this.jhdxxyckssjT= other.getJhdxxyckssjT();}
		if( other.getQzrq() != null){
			this.qzrq= other.getQzrq();}
		if( other.getDxkssjQ() != null){
			this.dxkssjQ= other.getDxkssjQ();}
		if( other.getDxksslQ1() != null){
			this.dxksslQ1= other.getDxksslQ1();}
		if( other.getDxkssjQ2() != null){
			this.dxkssjQ2= other.getDxkssjQ2();}

		if( other.getFdjfc() != null){
			this.fdjfc= other.getFdjfc();}


		return this;
	}
	
	
	public String getCopyInfo(AirplaneBaseinfo other){
		String copyInfo=" ";
		if( StringUtils.isNotBlank(other.getRecId())){
		this.setRecId(other.getRecId());}
			if(StringUtils.isNotBlank(other.getCcxlh())&&(this.ccxlh==null||!this.ccxlh.equals(other.getCcxlh()))){
				copyInfo+=" 航空器出厂序号：'"+(this.ccxlh==null?" ":this.ccxlh)+"'改为'"+other.getCcxlh()+"' ;";
			}
			if(StringUtils.isNotBlank(other.getZch())&&(this.zch==null||!this.zch.equals(other.getZch()))){
				copyInfo+=" 注册号：'"+(this.zch==null?" ":this.zch)+"'改为'"+other.getZch()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getFsn())&&(this.fsn==null||!this.fsn.equals(other.getFsn()))){
				copyInfo+=" 东航机队号/FSN：'"+(this.fsn==null?" ":this.fsn)+"'改为'"+other.getFsn()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getSign())&&(this.sign==null||!this.sign.equals(other.getSign()))){
				copyInfo+=" 国籍标志和登记标志：'"+(this.sign==null?" ":this.sign)+"'改为'"+other.getSign()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getAirModel())&&(this.airModel==null||!this.airModel.equals(other.getAirModel()))){
				copyInfo+=" 航空器型号：'"+(this.airModel==null?" ":this.airModel)+"'改为'"+other.getAirModel()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getAirZzs())&&(this.airZzs==null||!this.airZzs.equals(other.getAirZzs()))){
				copyInfo+=" 航空器制造厂商：'"+(this.airZzs==null?" ":this.airZzs)+"'改为'"+other.getAirZzs()+"' ;";
			}  
			 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			if(other.getProctionDate()!=null&&(this.proctionDate==null||!sdf.format(this.proctionDate).equals(sdf.format(other.getProctionDate())))){
				copyInfo+=" 出厂日期：'"+(this.proctionDate==null?" ":sdf.format(this.proctionDate))+"'改为'"+sdf.format(other.getProctionDate())+"' ;";
			}
			if(other.getUseDate()!=null&&(this.useDate==null||!sdf.format(this.useDate).equals(sdf.format(other.getUseDate())))){
				copyInfo+=" 调机日期：'"+(this.useDate==null?" ":sdf.format(this.useDate))+"'改为'"+sdf.format(other.getUseDate())+"' ;";
			}
			if(other.getOffDate()!=null&&(this.offDate==null||!sdf.format(this.offDate).equals(sdf.format(other.getOffDate())))){
				copyInfo+=" 注销日期：'"+(this.offDate==null?" ":sdf.format(this.offDate))+"'改为'"+sdf.format(other.getOffDate())+"' ;";
			}
			
			if(other.getJrygrq()!=null&&(this.jrygrq==null||!sdf.format(this.jrygrq).equals(sdf.format(other.getJrygrq())))){
				copyInfo+=" 加入运规日期：'"+(this.jrygrq==null?" ":sdf.format(this.jrygrq))+"'改为'"+sdf.format(other.getJrygrq())+"' ;";
			}
			if(other.getTcygrq()!=null&&(this.tcygrq==null||!sdf.format(this.tcygrq).equals(sdf.format(other.getTcygrq())))){
				copyInfo+=" 退出运规日期：'"+(this.tcygrq==null?" ":sdf.format(this.tcygrq))+"'改为'"+sdf.format(other.getTcygrq())+"' ;";
			}
			
			if(StringUtils.isNotBlank(other.getApu())&&(this.apu==null||!this.apu.equals(other.getApu()))){
				copyInfo+=" APU型号：'"+(this.apu==null?" ":this.apu)+"'改为'"+other.getApu()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getEngineS())&&(this.engineS==null||!this.engineS.equals(other.getEngineS()))){
				copyInfo+=" Engine serie：'"+(this.engineS==null?" ":this.engineS)+"'改为'"+other.getEngineS()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getEngine())&&(this.engine==null||!this.engine.equals(other.getEngine()))){
				copyInfo+=" Engine：'"+(this.engine==null?" ":this.engine)+"'改为'"+other.getEngine()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getOneSn())&&(this.oneSn==null||!this.oneSn.equals(other.getOneSn()))){
				copyInfo+=" 1st engine SN：'"+(this.oneSn==null?" ":this.oneSn)+"'改为'"+other.getOneSn()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getTwoSn())&&(this.twoSn==null||!this.twoSn.equals(other.getTwoSn()))){
				copyInfo+=" 2nd engine SN：'"+(this.twoSn==null?" ":this.twoSn)+"'改为'"+other.getTwoSn()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getHud())&&(this.hud==null||!this.hud.equals(other.getHud()))){
				copyInfo+=" HUD：'"+(this.hud==null?" ":this.hud)+"'改为'"+other.getHud()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getWifi())&&(this.wifi==null||!this.wifi.equals(other.getWifi()))){
				copyInfo+=" WIFI：'"+(this.wifi==null?" ":this.wifi)+"'改为'"+other.getWifi()+"' ;";
			}  
			if(StringUtils.isNotBlank(other.getMaxZl())&&(this.maxZl==null||!this.maxZl.equals(other.getMaxZl()))){
				copyInfo+=" 最大起飞重量(吨)：'"+(this.maxZl==null?" ":this.maxZl)+"'改为'"+other.getMaxZl()+"' ;";
			}  	
			if(StringUtils.isNotBlank(other.getGjNo())&&(this.gjNo==null||!this.gjNo.equals(other.getGjNo()))){
				copyInfo+=" 国籍登记证编号：'"+(this.gjNo==null?" ":this.gjNo)+"'改为'"+other.getGjNo()+"' ;";
			}  	
			if(other.getGjDate()!=null&&(this.gjDate==null||!sdf.format(this.gjDate).equals(sdf.format(other.getGjDate())))){
				copyInfo+=" 国籍登记证签发日期：'"+(this.gjDate==null?" ":sdf.format(this.gjDate))+"'改为'"+sdf.format(other.getGjDate())+"' ;";
			}	
			
			
			
			if(StringUtils.isNotBlank(other.getBzfj())&&(this.bzfj==null||!this.bzfj.equals(other.getBzfj()))){
				copyInfo+=" 本证发给：'"+(this.bzfj==null?" ":this.bzfj)+"'改为'"+other.getBzfj()+"' ;";
			}  	
			if(StringUtils.isNotBlank(other.getHaveName())&&(this.haveName==null||!this.haveName.equals(other.getHaveName()))){
				copyInfo+=" 所有人名称：'"+(this.haveName==null?" ":this.haveName)+"'改为'"+other.getHaveName()+"' ;";
			}  	
			if(StringUtils.isNotBlank(other.getHaveAddr())&&(this.haveAddr==null||!this.haveAddr.equals(other.getHaveAddr()))){
				copyInfo+=" 所有人地址：'"+(this.haveAddr==null?" ":this.haveAddr)+"'改为'"+other.getHaveAddr()+"' ;";
			}  	
			if(StringUtils.isNotBlank(other.getYyName())&&(this.yyName==null||!this.yyName.equals(other.getYyName()))){
				copyInfo+=" 运营人：'"+(this.yyName==null?" ":this.yyName)+"'改为'"+other.getYyName()+"' ;";
			}  	
			if(StringUtils.isNotBlank(other.getYyAddr())&&(this.yyAddr==null||!this.yyAddr.equals(other.getYyAddr()))){
				copyInfo+=" 运营人地址：'"+(this.yyAddr==null?" ":this.yyAddr)+"'改为'"+other.getYyAddr()+"' ;";
			}  	
			if(StringUtils.isNotBlank(other.getShNo())&&(this.shNo==null||!this.shNo.equals(other.getShNo()))){
				copyInfo+=" 标准适航证编号：'"+(this.shNo==null?" ":this.shNo)+"'改为'"+other.getShNo()+"' ;";
			}  	
			if(other.getQfDate()!=null&&(this.qfDate==null||!sdf.format(this.qfDate).equals(sdf.format(other.getQfDate())))){
				copyInfo+=" 标准适航证签发日期：'"+(this.qfDate==null?" ":sdf.format(this.qfDate))+"'改为'"+sdf.format(other.getQfDate())+"' ;";
			}	
			
			
			
			if(StringUtils.isNotBlank(other.getHjNo())&&(this.hjNo==null||!this.hjNo.equals(other.getHjNo()))){
				copyInfo+=" 选择呼叫代码：'"+(this.hjNo==null?" ":this.hjNo)+"'改为'"+other.getHjNo()+"' ;";
			} 
			if(StringUtils.isNotBlank(other.getAddrNoHex())&&(this.addrNoHex==null||!this.addrNoHex.equals(other.getAddrNoHex()))){
				copyInfo+=" 航空器地址编码 HEX：'"+(this.addrNoHex==null?" ":this.addrNoHex)+"'改为'"+other.getAddrNoHex()+"' ;";
			} 
			if(StringUtils.isNotBlank(other.getAddrNoOct())&&(this.addrNoOct==null||!this.addrNoOct.equals(other.getAddrNoOct()))){
				copyInfo+=" 航空器地址编码 OCT：'"+(this.addrNoOct==null?" ":this.addrNoOct)+"'改为'"+other.getAddrNoOct()+"' ;";
			} 
			if(StringUtils.isNotBlank(other.getNature())&&(this.nature==null||!this.nature.equals(other.getNature()))){
				copyInfo+=" 飞机性质：'"+CodeRepositoryUtil.getValue("AIRXZ", this.nature)+"'改为'"+CodeRepositoryUtil.getValue("AIRXZ", other.getNature())+"' ;";
			} 
			if(StringUtils.isNotBlank(other.getDtNo())&&(this.dtNo==null||!this.dtNo.equals(other.getDtNo()))){
				copyInfo+=" 电台执照序号：'"+(this.dtNo==null?" ":this.dtNo)+"'改为'"+other.getDtNo()+"' ;";
			} 
			if(other.getDtyxDate()!=null&&(this.dtyxDate==null||!sdf.format(this.dtyxDate).equals(sdf.format(other.getDtyxDate())))){
				copyInfo+=" 电台执照有效期限：'"+(this.dtyxDate==null?" ":sdf.format(this.dtyxDate))+"'改为'"+sdf.format(other.getDtyxDate())+"' ;";
			}	
			if(other.getDtbfDate()!=null&&(this.dtbfDate==null||!sdf.format(this.dtbfDate).equals(sdf.format(other.getDtbfDate())))){
				copyInfo+=" 电台执照颁发日期：'"+(this.dtbfDate==null?" ":sdf.format(this.dtbfDate))+"'改为'"+sdf.format(other.getDtbfDate())+"' ;";
			}	
			if(StringUtils.isNotBlank(other.getHt())&&(this.ht==null||!this.ht.equals(other.getHt()))){
				copyInfo+=" 合同文件已重新上传;";
			} 
			if(StringUtils.isNotBlank(other.getPw())&&(this.pw==null||!this.pw.equals(other.getPw()))){
				copyInfo+=" 批文文件已重新上传;";
			} 
			if(StringUtils.isNotBlank(other.getShz())&&(this.shz==null||!this.shz.equals(other.getShz()))){
				copyInfo+=" 适航证文件已重新上传;";
			} 
			if(StringUtils.isNotBlank(other.getDtz())&&(this.dtz==null||!this.dtz.equals(other.getDtz()))){
				copyInfo+=" 电台证文件已重新上传;";
			}
			if(StringUtils.isNotBlank(other.getGjz())&&(this.gjz==null||!this.gjz.equals(other.getGjz()))){
				copyInfo+=" 国籍证文件已重新上传;";
			}
			
			return copyInfo;
	}

	public AirplaneBaseinfo clearProperties(){
  
		this.gljh= null;  
		this.ccxlh= null;  
		this.zch= null;  
		this.fsn= null;  
		this.airZt= null;  
		this.nature= null;  
		this.pw= null;  
		this.startTime= null;  
		this.endTime= null;  
		this.sign= null;  
		this.airModel= null;  
		this.airZzs= null;  
		this.outSn= null;  
		this.proctionDate= null;  
		this.useDate= null;  
		this.offDate= null;  
		this.engineS= null;  
		this.engine= null;  
		this.oneSn= null;  
		this.twoSn= null;  
		this.gjNo= null;  
		this.gjDate= null;  
		this.bzfj= null;  
		this.haveName= null;  
		this.haveAddr= null;  
		this.yyName= null;  
		this.yyAddr= null;  
		this.shNo= null;  
		this.qfDate= null;  
		this.hjNo= null;  
		this.addrNoHex= null;  
		this.addrNoOct= null;  
		this.dtNo= null;  
		this.dtyxDate= null;  
		this.dtbfDate= null;  
		this.dtz= null;  
		this.shz= null;  
		this.gjz= null;  
		this.ht= null;  
		this.ht2htsqxx= null;  
		this.fjyz= null; 
		this.djsj= null;
		this.status= null;  
		this.fjcz= null;  
		this.bxxx= null;  
		this.zjbz= null;  
		this.mqzj= null;  
		this.zjzfqj= null;  
		this.hl= null;  
		this.jrygrq= null;  
		this.tcygrq= null;  
		this.apu= null;  
		this.hud= null;  
		this.wifi= null;  
		this.maxZl= null;  
		this.zyqdj= null;  
		this.idera= null;  
		this.zwbj= null;  
		this.dataValid= null;  
		this.insUsercode= null;  
		this.insTime= null;  
		this.editUsercode= null;  
		this.editTime= null;  
		this.delUsercode= null;  
		this.delTime= null;
		this.title=null;
		this.remark=null;
		return this;
	}
}
